In a general cellular mobile communication system, a plurality of macro cells each of which has a communication area of a radius of several hundred meters to several kilo meters are formed to enable communication. Since a communication area of each macro cell is large as described above, radio field intensity is weak in places, such as a boundary region between micro cells, indoor areas, and basements, and accordingly, communication quality is deteriorated. Therefore, in the future, in a long term evolution (LTE) system which is a next-generation cellular mobile communication system, implementation of a femtocell base station (Femto BS) which is a small base station having an LTE interface is expected.
Furthermore, a public wireless local area network (LAN) developed by cellular carriers has been widely used.
Moreover, in recent years, terminals (such as smart phones) including wireless interfaces employing a cellular method (3G or LTE) and wireless interfaces (that is, wireless adapters) employing a wireless LAN method have rapidly spread.
In such a wireless communication environment, a communication state of simultaneous connection to a plurality of wireless networks employing different wireless communication methods is assumed.
For example, link aggregation (LA) in which a gateway (GW) which accommodates a plurality of wireless networks transmits packets to a terminal using a plurality of communication links as illustrated in FIG. 1 has been proposed. The LA is a communication technique in which a plurality of communication links are simultaneously used for a certain traffic flow (hereinafter referred to as an “internet protocol (IP) flow” or simply referred to as a “flow”) so that improved throughput is attained. In the LA, it is particularly important to improve throughput of a flow of a transmission control protocol (TCP) which is used by a large number of applications.
FIG. 1 is a diagram illustrating an example of link aggregation. In FIG. 1, especially, an LTE method and a wireless LAN method are used as the plurality of wireless communication methods. Furthermore, a femto gateway which is one of relaying apparatuses mainly provides the LA.
For example, in the LA of a flow of a certain TCP, the femto gateway which is one of relaying apparatuses uses certain distribution algorithm for a flow of a down link from a server to a communication terminal so as to distribute the flow to the LTE link and the wireless LAN link for each TCP packet.
The related art is disclosed in Yohei HASAGAWA and Tsutomu MURASE, “A multi-path TCP Gateway with Dynamic Path-Load-Balancing”, The Institute of Electronics, Information and Communication Engineers, IEICE technical report NS2003-328, IN2003-283(2004-03), pp. 175 to 178.
A path between the femto gateway and the terminal is formed by multihop, that is, the path includes at least one relaying apparatus. Therefore, unlike a path formed by one hop, measurement of an available bandwidth is difficult in the path between the femto gateway and the terminal. The available bandwidth is a remaining bandwidth which is available in the path. When the available bandwidth is exactly obtained, TCP packets may be assigned to the LTE link and the wireless LAN link by the packet distribution algorithm in accordance with the available bandwidth.
Specifically, in a case of a one hop path, that is, a path between a femto base station and the terminal, for example, the available bandwidth may be measured when the femto base station has a function of measuring an available bandwidth. However, in a multihop path, measurement of the available bandwidth is difficult since a large number of apparatuses in a network share hops. Accordingly, it is preferable that congestion/rate control is independently performed in a path of the LTE link and a path of the wireless LAN link between the femto gateway and the terminal. The congestion/rate control is generally a function of adjusting a packet transmission rate so that congestion of the path is avoided in a process in which a transport protocol for transmitting user data actually transmits user data as a packet. This adjustment is performed in accordance with detection of a packet loss, a period of time used to obtain a reception acknowledgement from a reception side, and the like.
The congestion/rate control for each communication link in the link aggregation described above may be realized as follows, for example. FIG. 2 is a diagram illustrating an example of a technique associated with link aggregation.
As illustrated in FIG. 2, the femto gateway sets TCP connections for individual communication links between the terminal and the femto gateway. In FIG. 2, a TCP delivery connection 1 (TCP-D1) and a TCP delivery connection 2 (TCP-D2) are set. The femto gateway replaces a TCP original connection (TCP-O) which is a TCP connection between the server and the terminal with the TCP-D1 and the TCP-D2 by using a transparent TCP proxy function (hereinafter simply referred to as a “TCP proxy” where appropriate). The TCP connections are set for individual connection links since the congestion/rate control is independently operated for individual communication links. Specifically, a TCP process has a function of the congestion/rate control. When congestion/rate control is performed once between the server and the terminal, for example, and when congestion is generated in a certain communication link, the congestion/rate control degrades a transmission rate of an entire TCP flow even when bandwidths of other communication links are available. To avoid the degradation of the transmission rate, congestion/rate control functions which are operated by the TCP-D1 and the TCP-D2 are demanded for individual communication links separately from the congestion/rate control function which is operated by the TCP-O between the server and the terminal.
Specifically, packet distribution algorithm of the femto gateway distributes packets in accordance with results of the congestion/rate control of communication links. Examples of the results of the congestion/rate control include states of transmission buffers (queue lengths or the like). For example, the packet distribution algorithm of the femto gateway distributes a larger number of packets to a communication link in which the number of accumulated packets in a transmission buffer is smaller.
The packets distributed to the communication links are transmitted to the terminal through the TCP connections (the TCP-D1 and the TCP-D2) of the individual communication links.
Thereafter, the terminal replaces the TCP connections (the TCP-D1 and the TCP-D2) for individual communication links with the TCP connection (the TCP-O) between the server and the terminal. Specifically, as an image of protocol stack of the communication links of the link aggregation, the TCP connections (the TCP-D1 and the TCP-D2) for individual communication links are defined as a lower layer of the TCP connection (the TCP-O) between the server and the terminal. The “replacement function” of the terminal is an additional function which is not included in general terminals.
Then the TCP connections (the TCP-D1 and the TCP-D2) for individual communication links of the terminal transmit reception acknowledgement packets (Acknowledgement: ACK) to the TCP connections (the TCP-D1 and the TCP-D2) for individual communication links of the femto gateway. Here, pseudo transmission of the reception acknowledgement packets is performed by a transmission proxy of the femto gateway instead of the terminal. Furthermore, a reception acknowledgement packet output from the TCP-O of the terminal is transmitted to the replacement function of the terminal. Specifically, the process is terminated in the replacement function of the terminal.
The procedure described above will be further described in detail with reference to FIG. 3. FIG. 3 is a diagram illustrating an example of a procedure of (the technique associated with) the link aggregation.
The TCP-O of the server and the TCP-O of the terminal perform a procedure of establishment of a TCP-O connection (that is, three-way handshake) so that a TCP-O connection is established between the server and the terminal (step S1). A control packet is transmitted through the LTE link, for example, in the three-way handshake.
The TCP-O of the server transmits user data 1 (Data1) and user data 2 (Data2) to the terminal (step S2 and step S3). In this case, the TCP-O of the server assigns a sequence number (hereinafter will be also referred to as an “intra-flow number”) to a TCP-O header of a TCP-O packet. Here, a sequence number Seq1 is assigned to the TCP-O packet including Data1 (refer to FIG. 4) and a sequence number Seq2 is assigned to the TCP-O packet including Data2. FIG. 4 is a diagram illustrating an example of a format of the TCP-O packet.
When receiving a TCP-O packet Seq1+Data1 and a TCP-O packet Seq2+Data2, a TCP proxy of the femto gateway transmits pseudo ACK3 (refer to FIG. 5) to the server (step S4) in place of the terminal. This process is performed to replace the TCP-O connection with the TCP-D1 connection or the TCP-D2 connection. In this way, since the TCP proxy terminates the TCP-O connection, even when congestion occurs in a certain link, a situation in which congestion/rate control of the TCP-O between the server and the terminal, which immediately degrades a transmission rate, is executed may be avoided. FIG. 5 is a diagram illustrating an example of a format of the pseudo reception acknowledgement packet. As illustrated in FIG. 5, a reception acknowledgement is included in the TCP-O header of the TCP-O packet. A number next to a sequence number of a TCP-O packet which is sequentially received is assigned to ACK. Specifically, since the TCP-O packet having the sequence number Seq1 and the TCP-O packet having the sequence number Seq2 have been received, a number 3 which is next to the number 2 is assigned to ACK to be transmitted.
The TCP proxy of the femto gateway transmits the received TCP-O packet Seq1+Data1 to the packet distribution algorithm (step S5).
The packet distribution algorithm of the femto gateway distributes the TCP-O packet of Seq1+Data1 supplied from the TCP proxy, to a process of the TCP-D1 so as to transmit the TCP-O packet of Seq1+Data1 to the TCP-D1 (step S6).
When receiving the TCP-O packet of Seq1+Data1, the TCP-D1 assigns a sequence number (hereinafter will be also referred to as an “intra-link number”) in the TCP-D1 and encapsulates the TCP-O packet of Seq1+Data1 by the TCP-D1 header so as to generate a TCP-D1 packet (refer to FIG. 6). Here, the TCP-D1 includes the assigned intra-link number in the TCP-D1 header. In the example of FIG. 3, an intra-link number Seq11 of the TCP-D1 is added to the TCP packet Seq1+Data1. FIG. 6 is a diagram illustrating an example of a format of the TCP-D1 packet.
The TCP-D1 of the femto gateway transmits the generated TCP-D1 packet Seq11+(Seq1+Data1) to the TCP-D1 of the terminal (step S7).
Upon receiving the TCP-D1 packet Seq11+(Seq1+Data1), the TCP-D1 of the terminal transmits ACK12 to the TCP-D1 of the femto gateway (step S8).
Furthermore, the TCP-D1 of the terminal transmits the received TCP-D1 packet of Seq11+(Seq1+Data1) to a replacement function (step S9).
The replacement function decapsulates the received TCP-D1 packet Seq11+(Seq1+Data1) and transmits the TCP-O packet Seq1+Data1 to the TCP-O of the terminal (step S10). Specifically, the replacement function replaces the TCP connection (the TCP-D1 connection here) in the communication link used in the LA with the TCP connection (the TCP-O connection) between the server and the terminal.
The same process as the process in step S5 to step S10 is performed on the TCP-O packet of Seq2+Data2 (step S11 to step S16).
Upon receiving the TCP-O packet of Seq2+Data2, the TCP-O of the terminal transmits ACK3 to the server (step S17). However, the replacement function receives ACK3 and terminates the process. This is because the TCP proxy has already transmitted the pseudo ACK.
By the procedure above, the link aggregation of the TCP flow between the server and the terminal (that is, the TCP-O flow) may be realized in the related art.